當我們訓練好一個模型後,想要把這個模型拿到現實社會中去用,然而可能還有很多因素需要考慮,像是產品端的計算能力,有時候需要在計算能力比較弱的設備上運行模型,如手機、端點設備(Edge Device)、監視器等,若不做任何修改,可能會造成計算能力不足或者需要運行的時間太久,不符合應用場景而出現問題,為了應對這樣的狀況,今天就是要介紹相關技術:模型剪枝(Model Pruning)。
模型剪枝的目標是只需要保留重要的權重、參數,希望模型保持相同的性能、效果,同時可以降低計算成本,並且也減少了模型的儲存空間,另外在開發時,還可以加速訓練過程。基本的模型剪枝原理就是去掉權重中不重要的值,以深度學習模型為例,就是減少神經網路層之間的連接數量,這樣就可以減少計算中涉及的參數,從而降低計算次數,如此會碰到的問題就是模型的表現會降低,所以模型剪枝可以說是模型參數量及模型的表現之間的交易(trade-off)。
相關的技術還有模型的權重共用、量化(Quantization)、低階近似(Low Rank Approximation)等,降低計算成本的好處除了可能是因為設備的硬體限制外,還可以降低能源消耗的問題,可以說是產品端一個重要的課題。
(圖片取自:[1])
[1]:Han, S., Pool, J., Tran, J., & Dally, W. (2015). Learning both weights and connections for efficient neural network. In Advances in neural information processing systems (pp. 1135-1143).